// utils/dateFormatter.ts
/**
 * 格式化 Date 类型为指定字符串
 * @param date - 待格式化的 Date 对象（若为无效 Date 会返回空字符串）
 * @param format - 目标格式（默认：YYYY-MM-DD HH:mm:ss）
 * @returns 格式化后的字符串
 */
export function formatDate(
    date: Date,
    format: string = 'YYYY-MM-DD'
): string {
    // 校验是否为有效 Date
    if (isNaN(date.getTime())) {
        console.warn('无效的 Date 对象，无法格式化');
        return '';
    }

    // 提取日期时间各部分
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份 0-11，需 +1 并补零
    const day = String(date.getDate()).padStart(2, '0');
    const hours = String(date.getHours()).padStart(2, '0');
    const minutes = String(date.getMinutes()).padStart(2, '0');
    const seconds = String(date.getSeconds()).padStart(2, '0');
    const milliseconds = String(date.getMilliseconds()).padStart(3, '0'); // 毫秒（三位补零）

    // 替换格式占位符
    return format
        .replace('YYYY', year.toString())
        .replace('MM', month)
        .replace('DD', day)
        .replace('HH', hours)
        .replace('mm', minutes)
        .replace('ss', seconds)
        .replace('fff', milliseconds)
        .replace('Z', 'Z'); // 若需 UTC 时区标识，可直接拼接或处理时区偏移
}